/*
 * Copyright 2007 National Bioinformatics Network
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package dgbgui.tools;

import java.util.LinkedHashSet;
import java.util.Set;

import dgbgui.command.CommandStack;
import dgbgui.command.DeleteQueryCommand;
import dgbgui.command.GroupCommand;
import dgbgui.modeldocument.Query;
import dgbgui.selection.SelectionManager;

public class DeleteTool implements Tool {

	public void execute() {
		
		// There must be at least two query nodes selected
		assert (SelectionManager.getInstance().size(Query.class) >= 1);
		
		// Get the nodes to boolean
        Set<Object> selectedObjs = SelectionManager.getInstance().getSelection(Query.class);
        Set<Query> selectedNodes = new LinkedHashSet<Query>();
        for ( Object obj : selectedObjs ) {
            selectedNodes.add((Query)obj);
        }

		
        // Remove the two child nodes from the model canvas
        GroupCommand groupCommand = new GroupCommand();
        
		for ( Query node : selectedNodes ) {
            groupCommand.add( new DeleteQueryCommand(node));
		}
        CommandStack.getInstance().execute(groupCommand);
	}

}
